#include "cJSON/cJSON.h"
#include "log/log.h"

int main(int argc, char const *argv[])
{
    // 1. 生成一个json字符串
    // 创建一个空的cJSON对象
    cJSON * root = cJSON_CreateObject();
    // 向对象中添加数据
    cJSON_AddStringToObject(root, "name", "Tom");
    cJSON_AddNumberToObject(root, "age", 20);
    // 将对象转换为json字符串
    char *json_str = cJSON_PrintUnformatted(root);
    log_debug("json_str: %s", json_str);  // {"name":"Tom","age":20}

    // 2. 解析json字符串
    // 解析json字符串
    cJSON *root2 = cJSON_Parse(json_str);
    // 获取数据
    cJSON *nameObj = cJSON_GetObjectItem(root2, "name");
    cJSON *ageObj = cJSON_GetObjectItem(root2, "age");
    if (nameObj == NULL || ageObj == NULL)
    {
        log_error("nameObj or ageObj is NULL");
        return -1;
    }
    char *name = nameObj->valuestring;
    int age = ageObj->valueint;
    log_debug("name: %s, age: %d", name, age);  // name: Tom, age: 20

    // 3. 释放内存
    cJSON_Delete(root);
    cJSON_Delete(root2);

    return 0;
}
